import numpy as np
import matplotlib

matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
import numpy.fft as fft

# 生成一个正弦波
fs = 500  # 采样率
T = 1 / fs
x = np.arange(0, 1, T)
f = 5  # 频率 5Hz
y = np.sin(2 * np.pi * f * x)

# 傅里叶变换
Y = fft.fft(y)
freqs = fft.fftfreq(len(Y), T)

# 可视化
plt.figure(figsize=(12, 5))

plt.subplot(1, 2, 1)
plt.title("时域信号 (5Hz)")
plt.plot(x, y)

plt.subplot(1, 2, 2)
plt.title("频域 (FFT 结果)")
plt.stem(freqs[:len(freqs) // 2], np.abs(Y)[:len(Y) // 2])
plt.xlabel("频率 (Hz)")
plt.ylabel("幅值")

plt.tight_layout()
plt.show()
